﻿
using Prism.Mvvm;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;

namespace Wpf.Models
{
    //转化之后的实体
    public class Nursing_Column_Record : BindableBase
    {
        #region 已有实际意义列
        /// <summary>
        /// 主键
        /// </summary>
        public string ID { get; set; }
        /// <summary>
        /// 患者PVID
        /// </summary>
        public string PVID { get; set; }
        /// <summary>
        /// 记录时间
        /// </summary>
        public DateTime RECORD_TIME { get; set; }
        /// <summary>
        /// 顺序
        /// </summary>
        public int RECORDNUM { get; set; }
        /// <summary>
        /// 医嘱执行、导管、皮肤、护嘱等数据源记录ID多个逗号分割
        /// </summary>
        public string ORDERID { get; set; }
        /// <summary>
        /// 创建时间
        /// </summary>
        public DateTime CREATE_TIME { get; set; }
        /// <summary>
        /// 区域编码
        /// </summary>
        public string AREACODE { get; set; }
        /// <summary>
        /// 创建用户ID
        /// </summary>
        public string CREATE_USER_ID { get; set; }
        /// <summary>
        /// 创建用户名称
        /// </summary>
        public string CREATE_USER_NAME { get; set; }
        private string _INPUT;
        /// <summary>
        /// 入量值
        /// </summary>
        public string INPUT
        {
            get => _INPUT; set
            {
                _INPUT = value;
                RaisePropertyChanged("INPUT");
            }
        }
        private string _INPUTFS;
        /// <summary>
        /// 入量方式
        /// </summary>
        public string INPUTFS
        {
            get => _INPUTFS; set
            {
                _INPUTFS = value;
                RaisePropertyChanged("INPUTFS");
            }
        }

        private string _INPUTNAME;
        /// <summary>
        /// 入量名称
        /// </summary>
        public string INPUTNAME
        {
            get => _INPUTNAME; set
            {
                _INPUTNAME = value;
                RaisePropertyChanged("INPUTNAME");
            }
        }
        private string _OUTPUT;
        /// <summary>
        /// 出量
        /// </summary>
        public string OUTPUT
        {
            get => _OUTPUT; set
            {
                _OUTPUT = value;
                RaisePropertyChanged("OUTPUT");
            }
        }
        private string _OUTPUTNAME;
        /// <summary>
        /// 出量名称
        /// </summary>
        public string OUTPUTNAME
        {
            get => _OUTPUTNAME; set
            {
                _OUTPUTNAME = value;
                RaisePropertyChanged("OUTPUTNAME");
            }
        }
        private string _OUTPUTXZ;
        /// <summary>
        /// 出量性质
        /// </summary>
        public string OUTPUTXZ
        {
            get => _OUTPUTXZ; set
            {
                _OUTPUTXZ = value;
                RaisePropertyChanged("OUTPUTXZ");
            }
        }
        private string _OUTPUTYS;
        /// <summary>
        /// 出量颜色
        /// </summary>
        public string OUTPUTYS
        {
            get => _OUTPUTYS; set
            {
                _OUTPUTYS = value;
                RaisePropertyChanged("OUTPUTYS");
            }
        }
        private string _NURSING;
        /// <summary>
        /// 病情观察内容
        /// </summary>
        public string NURSING
        {
            get => _NURSING; set
            {
                _NURSING = value;
                RaisePropertyChanged("NURSING");
            }
        }
        /// <summary>
        /// 体温
        /// </summary>
        public string TW { get; set; }
        /// <summary>
        /// 心率
        /// </summary>
        public string XL { get; set; }
        /// <summary>
        /// 呼吸
        /// </summary>
        public string HX { get; set; }
        /// <summary>
        /// 收缩压
        /// </summary>
        public string SSY { get; set; }
        /// <summary>
        /// 舒张压
        /// </summary>
        public string SZY { get; set; }
        /// <summary>
        /// 脉搏
        /// </summary>
        public string MB { get; set; }
        /// <summary>
        /// 血氧SPO2
        /// </summary>
        public string XY { get; set; }
        /// <summary>
        /// 血糖
        /// </summary>
        public string XT { get; set; }
        /// <summary>
        /// 是否主记录1=主记录
        /// </summary>
        public int ISMAIN { get; set; }
        /// <summary>
        /// 数据来源 1客户端添加普通行，2出入量统计行, 3客户端医嘱执行写入  4客户端导管写入 ,5移动端写入 6皮肤管理写入 7日常护理/护嘱
        /// </summary>
        public int SOURCE { get; set; }
        /// <summary>
        /// 审核用户ID
        /// </summary>
        public string CHECK_USER_ID { get; set; }
        /// <summary>
        /// 审核用户名称
        /// </summary>
        public string CHECK_USER_NAME { get; set; }
        /// <summary>
        /// 病情观察记录类型0普通记录1小结记录  2022-10-27
        /// </summary>
        public string NURSINGTYPE { get; set; }
        /// <summary>
        /// 主记录ID
        /// </summary>
        public string GROUPID { get; set; }
        /// <summary>
        /// 班次日期  2022-11-08
        /// </summary>
        public DateTime SHIFT_DAY { get; set; }
        /// <summary>
        /// 记录小时  2022-11-08
        /// </summary>
        public DateTime RECORD_HOUR { get; set; }
        /// <summary>
        /// 记录所属班次名称  2022-11-08 
        /// </summary>
        public string SHIFT_NAME { get; set; }
        /// <summary>
        /// 护理小结  2022-11-08
        /// </summary>
        public List<Nursing_Column_Record> ChildRecord { get; set; }
        /// <summary>
        /// CA签名
        /// </summary>
        public string CA_USER_ID { get; set; }
        /// <summary>
        /// CA审签签名
        /// </summary>
        public string CHECKCA_USER_ID { get; set; }
        #endregion
        //-------------------------扩展列，可以现场指定实际意义--------
        #region 扩展下拉列

        private string _DROP1; public string DROP1 { get => _DROP1; set { _DROP1 = value; RaisePropertyChanged("DROP1"); } }
        private string _DROP2; public string DROP2 { get => _DROP2; set { _DROP2 = value; RaisePropertyChanged("DROP2"); } }
        private string _DROP3; public string DROP3 { get => _DROP3; set { _DROP3 = value; RaisePropertyChanged("DROP3"); } }
        private string _DROP4; public string DROP4 { get => _DROP4; set { _DROP4 = value; RaisePropertyChanged("DROP4"); } }
        private string _DROP5; public string DROP5 { get => _DROP5; set { _DROP5 = value; RaisePropertyChanged("DROP5"); } }
        private string _DROP6; public string DROP6 { get => _DROP6; set { _DROP6 = value; RaisePropertyChanged("DROP6"); } }
        private string _DROP7; public string DROP7 { get => _DROP7; set { _DROP7 = value; RaisePropertyChanged("DROP7"); } }
        private string _DROP8; public string DROP8 { get => _DROP8; set { _DROP8 = value; RaisePropertyChanged("DROP8"); } }
        private string _DROP9; public string DROP9 { get => _DROP9; set { _DROP9 = value; RaisePropertyChanged("DROP9"); } }
        private string _DROP10; public string DROP10 { get => _DROP10; set { _DROP10 = value; RaisePropertyChanged("DROP10"); } }
        private string _DROP11; public string DROP11 { get => _DROP11; set { _DROP11 = value; RaisePropertyChanged("DROP11"); } }
        private string _DROP12; public string DROP12 { get => _DROP12; set { _DROP12 = value; RaisePropertyChanged("DROP12"); } }
        private string _DROP13; public string DROP13 { get => _DROP13; set { _DROP13 = value; RaisePropertyChanged("DROP13"); } }
        private string _DROP14; public string DROP14 { get => _DROP14; set { _DROP14 = value; RaisePropertyChanged("DROP14"); } }
        private string _DROP15; public string DROP15 { get => _DROP15; set { _DROP15 = value; RaisePropertyChanged("DROP15"); } }
        private string _DROP16; public string DROP16 { get => _DROP16; set { _DROP16 = value; RaisePropertyChanged("DROP16"); } }
        private string _DROP17; public string DROP17 { get => _DROP17; set { _DROP17 = value; RaisePropertyChanged("DROP17"); } }
        private string _DROP18; public string DROP18 { get => _DROP18; set { _DROP18 = value; RaisePropertyChanged("DROP18"); } }
        private string _DROP19; public string DROP19 { get => _DROP19; set { _DROP19 = value; RaisePropertyChanged("DROP19"); } }
        private string _DROP20; public string DROP20 { get => _DROP20; set { _DROP20 = value; RaisePropertyChanged("DROP20"); } }
        #endregion

        #region 扩展弹出列
        public string DIAG1 { get; set; }
        public string DIAG2 { get; set; }
        public string DIAG3 { get; set; }
        public string DIAG4 { get; set; }
        public string DIAG5 { get; set; }
        public string DIAG6 { get; set; }
        public string DIAG7 { get; set; }
        public string DIAG8 { get; set; }
        public string DIAG9 { get; set; }
        public string DIAG10 { get; set; }
        public string DIAG11 { get; set; }
        public string DIAG12 { get; set; }
        public string DIAG13 { get; set; }
        public string DIAG14 { get; set; }
        public string DIAG15 { get; set; }
        public string DIAG16 { get; set; }
        public string DIAG17 { get; set; }
        public string DIAG18 { get; set; }
        public string DIAG19 { get; set; }
        public string DIAG20 { get; set; }
        #endregion

        #region 扩展文本列
        public string TEXT1 { get; set; }
        public string TEXT2 { get; set; }
        public string TEXT3 { get; set; }
        public string TEXT4 { get; set; }
        public string TEXT5 { get; set; }
        public string TEXT6 { get; set; }
        public string TEXT7 { get; set; }
        public string TEXT8 { get; set; }
        public string TEXT9 { get; set; }
        public string TEXT10 { get; set; }
        public string TEXT11 { get; set; }
        public string TEXT12 { get; set; }
        public string TEXT13 { get; set; }
        public string TEXT14 { get; set; }
        public string TEXT15 { get; set; }
        public string TEXT16 { get; set; }
        public string TEXT17 { get; set; }
        public string TEXT18 { get; set; }
        public string TEXT19 { get; set; }
        public string TEXT20 { get; set; }
        #endregion

        #region 展示
        /// <summary>
        /// 护理记录明细展开
        /// </summary>
        private bool _IsExpanded;

        public bool IsExpanded
        {
            get => _IsExpanded;
            set
            {

                _IsExpanded = value;
                RaisePropertyChanged(nameof(IsExpanded));
            }
        }
        /// <summary>
        /// 护理记录行是否不可点击（出入量行不可操作）
        /// </summary>
        private bool _RowEnable;

        public bool RowEnable
        {
            get => _RowEnable;
            set
            {

                _RowEnable = value;
                RaisePropertyChanged(nameof(RowEnable));
            }
        }

        /// <summary>
        /// 护理记录可编辑（行和操作，控制是否能保存）
        /// </summary>
        private bool _RowCanEdit;

        public bool RowCanEdit
        {
            get => _RowCanEdit;
            set
            {

                _RowCanEdit = value;
                RaisePropertyChanged(nameof(RowCanEdit));
            }
        }
        #endregion

        #region 变动的列名
        public string ColumnName { get; set; }
        #endregion

        #region 出入量名选中项
        
        //private nursing_droplist _CurrINPUTNAME = new nursing_droplist();

        ///// <summary>
        ///// 入量名选中
        ///// </summary>
        //public nursing_droplist CurrINPUTNAME
        //{
        //    get => _CurrINPUTNAME;
        //    set
        //    {
        //        _CurrINPUTNAME = value;
        //        if (_CurrINPUTNAME!=null)
        //        {
        //            this.INPUTNAME = _CurrINPUTNAME.ITEMNAME;
        //        }
        //        RaisePropertyChanged(nameof(CurrINPUTNAME));
        //    }
        //}

       
        //private nursing_droplist _CurrOUTNAME = new nursing_droplist();

        ///// <summary>
        ///// 出量名选中
        ///// </summary>
        //public nursing_droplist CurrOUTNAME
        //{
        //    get => _CurrOUTNAME;
        //    set
        //    {
        //        _CurrOUTNAME = value;
        //        if (_CurrOUTNAME!=null)
        //        {
        //            this.OUTPUTNAME = _CurrOUTNAME.ITEMNAME;
        //        }
        //        RaisePropertyChanged(nameof(CurrOUTNAME));
        //    }
        //} 
        #endregion
    }
}
